// 版权归陈超所有

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/HUD.h"
#include "CC_HUD.generated.h"

class UAttributeSet;
class UAbilitySystemComponent;
struct FWidgetControllerParams;
class UCC_OverlayWidgetController;
class UCC_UserWidget;
/**
 * 
 */
UCLASS()
class CC_AURA_API ACC_HUD : public AHUD
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TObjectPtr<UCC_UserWidget> OverlayWidget;		//覆盖层小部件

	UCC_OverlayWidgetController* GetOverlayWidgetController(/*const FWidgetControllerParams& FWCParams*/);

	void InitOverlay(APlayerController* PC, APlayerState* PS, UAbilitySystemComponent* ASC, UAttributeSet* AS);

private:
	UPROPERTY(EditAnywhere)
	TSubclassOf<UCC_UserWidget> OverlayWidgetClass;		//覆盖层小部件类

	UPROPERTY()
	TObjectPtr<UCC_OverlayWidgetController> OverlayWidgetController;	//覆盖层小部件控制器

	//覆盖层小部件的类、子类
	UPROPERTY(EditAnywhere)
	TSubclassOf<UCC_OverlayWidgetController> OverlayWidgetControllerClass;
};
